package com.etc.service;

import com.etc.entity.Doctor;
import com.etc.entity.History;
import com.etc.entity.Patient;
import com.etc.entity.Time;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface DoctorService {
    /**
     * 添加医生
     * @param doctorName
     * @param deptId
     * @param phone
     * @param gender
     * @param image
     * @return
     */
    boolean addDoctor(String doctorName,Integer deptId,String phone,String gender,String image);

    /**
     * 手机号码是否存在
     * @param phone
     * @return
     */
    boolean existOfPhone(String phone);

    /**
     * 获取所有医生信息
     * @return
     */
    List<Doctor> getDoctorList();

    /**
     * 获取所有医生信息条件查询
     * @return
     */
    List<Doctor> getDoctorListSelective(Doctor doctor);

    /**
     * 分页查询医生列表
     * @return
     */
    PageInfo<Doctor> getDoctorListByPage(Doctor doctor, int pageNum, int pageSize);

    /**
     * 登录
     * @param phone
     * @param password
     * @return
     */
    Doctor login(String phone, String password);

    /**
     * 退出登录
     */
    void logout();

    /**
     * 从session作用域中获取登录用户信息
     * @return
     */
    Doctor getDoctorBySession();

    /**
     * 更新医生
     * @param doctorName
     * @param password
     * @param deptId
     * @param phone
     * @param gender
     * @param image
     * @return
     */
    boolean updateDoctor(String doctorId,String doctorName,String password,Integer deptId,String phone,String gender,String image);

    /**
     * 通过预约单就诊人Id查询就诊人信息
     * @param patientId
     * @return
     */
    List<Patient> getPatientDetail(String patientId);

    /**
     * 通过预约单就诊人Id查询就诊人就诊信息
     * @param patientId
     * @return
     */
    List<History> getHistoryDetail(String patientId);



    /**
     * 获取该医生的所有患者数据以及病因
     * @param doctorId
     * @return
     */
    List<History> getPatientAndHistoryByDoctorId(String doctorId);

    /**
     * 获取该医生的排班时间
     * @param doctorId
     * @return
     */
    List<Time> getTimeByDoctorId(String doctorId);
}
